Many Internet web sites require a user to traverse a series of web pages in order to accomplish a task. The set of pages and the logic controlling the order in which pages are displayed and how information is passed between displayed pages is referred to as a “task flow”. The set of logic that determines which page in the task flow to display next based on the current displayed page, requested action and application logic is referred to as “control flow rules” or “control flow”. User interaction with a user interface component or control typically generates the requested action.
For example, a task flow for performing a “checkout” after selecting items to purchase may present a first page for entering a mailing address, a second page for entering payment information, and a third page for entering a billing address. Each subsequent page, for example, can be presented to a user after the user enters information in the preceding page and then clicks on the next button invoking the control flow rules that declare that a “next page” action on the “mailing address page” should result in the display of the “payment information” page, and that a “next page” action raised on the “payment information” page should result in the display of the “billing address” page.
Task flows may also parameterize their initial state and the state passed between sub-pages so that the same task flow definition may be reused in multiple contexts. For example, the above checkout example may take a “customer” as a parameter so that the correct customer data will be displayed and updated.